package com.jimikongjian.service.base;

import com.jimikongjian.models.ResponseMessage;
import com.jimikongjian.models.Room;

/**
 * Created by fuxiuyang on 17/2/26.
 * 定义空间服务所需要的方法
 */
public interface IRoomService {

    /**
     * 创建一个新的空间
     * @param room
     * @return
     */
    public ResponseMessage createRoom(Room room);

    /**
     * 获取所有的空间信息的列表
     * @param start
     * @param length
     * @return
     */
    public ResponseMessage selectRoom(int start, int length);

    /**
     * 通过空间的id号查找空间
     * @param id
     * @return
     */
    public ResponseMessage selectRoomById(int id);

    /**
     * 通过创建者的id查找空间
     * @param creatorId
     * @param type
     * @param start
     * @param length
     * @return
     */
    public ResponseMessage selectRoomByCreatorId(int creatorId, int type, int start, int length);

    /**
     * 通过空间的名称，查找空间
     * @param name
     * @param type
     * @param start
     * @param length
     * @return
     */
    public ResponseMessage selectRoomByName(String name, int type, int start, int length);

    /**
     * 通过userId，查找该用户关注的空间
     * @param userId
     * @param type
     * @param start
     * @param length
     * @return
     */
    public ResponseMessage selectRoomByUserId(int userId, int type, int start, int length);

    /**
     * 通过userId，查找该用户关注的空间
     * @param userId
     * @return
     */
    public ResponseMessage selectRoomByUserId(int userId);

    /**
     * 更新空间信息
     * @param room
     * @return
     */
    public ResponseMessage updateRoom(Room room);

    /**
     * 将空间的关注用户+1
     * @param id
     */
    public void updateAddPeoplesCount(int id);

    /**
     * 将空间的关注用户-1
     * @param id
     */
    public void updateSubPeoplesCount(int id);

    /**
     * 通过空间的id号，查找是否存在该空间
     * @param id
     * @return
     */
    public boolean hasRoom(int id);

}
